package com.mo.lib.adapter

import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.entity.MultiItemEntity
import com.chad.library.adapter.base.viewholder.BaseViewHolder

/**
 * @ author：mo
 * @ data：2021/9/16:10:54
 * @ 功能：多布局rv适配器
 * @ 注意：
 * 1、item 实体类必须实现MultiItemEntity接口 定义itemtype
 * 2、在实现addItemTypes抽象方法里 addItemType（itemType，layoutId）
 */
abstract class BaseRvMultiAdapter<T : MultiItemEntity>(data: MutableList<T>? = null) : BaseMultiItemQuickAdapter<T, BaseViewHolder>(data) {
    init {
        addItemTypes()
    }

    abstract fun addItemTypes()
    override fun convert(baseViewHolder: BaseViewHolder, t: T) {
        doWhat(baseViewHolder, t, baseViewHolder.itemViewType)
    }

    protected abstract fun doWhat(holder: BaseViewHolder?, bean: T, itemViewType: Int)
}